home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Netware Super Library
/
Netware Super Library.iso
/
pgm_tool
/
lu62
/
proc
/
fallocat.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-07-03
|
2KB
|
93 lines
/*
* CopyRight 1995. Nicholas Poljakov all rights reserved.
*/
#include <malloc.h>
#include <stdio.h>
#include <alloc.h>
#include <dos.h>
#include <state1.h>
allocate (lu_name,mode_name,tpn,return_control,security,
sync_level,user_id,password,tp_id,p_convid,
p_pip,p_rc)
unsigned char lu_name[8];
unsigned char mode_name[8];
unsigned char tpn[64];
unsigned char return_control;
unsigned char security;
unsigned char sync_level;
unsigned char user_id[11];
unsigned char password[10];
unsigned char tp_id[8];
unsigned long *p_convid;
char *p_pip;
struct rc {
unsigned int prim;
unsigned long sec; } *p_rc;
{
union REGS inregs,outregs;
struct SREGS segregs;
struct allocate *ptr;
char _near *dp1;
char _near *dp2;
int l;
toup(lu_name);
toup(mode_name);
l = sizeof(struct allocate);
if ((ptr = (char *)calloc(1,l)) == NULL)
{
p_rc->prim = PORT_BUSY; /* ¡ÑΓ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿ */
p_rc->sec = 0x00;
return(0);
}
ptr->code=Allocate;
ptr->e_cd=0x0000;
copy(ptr->p_lu_name,lu_name,8);
copy(ptr->mode_name,mode_name,8);
memcpy(ptr->tp_id,tp_id,8);
ptr->security = security;
ptr->sync_level = sync_level;
ptr->return_control = return_control;
strcpy(ptr->tp_name,tpn);
memcpy(ptr->password,password,10);
memcpy(ptr->user_id,user_id,11);
ptr->tp_lt = strlen(tpn);
ptr->pip = p_pip;
/*
inregs.x.dx = FP_OFF(ptr);
segregs.ds = FP_SEG(ptr);
inregs.x.ax = ptr->code;
int86x(0x68,&inregs,&outregs,&segregs);
*/
dp1 = FP_OFF( ptr );
dp2 = FP_SEG( ptr );
_asm
{
push ds
mov dx, word ptr dp1[0]
mov ax, word ptr dp2[0]
mov ds, ax
mov ax, Allocate
int 68h
pop ds
}
p_rc->prim = ptr->prim_rc;
p_rc->sec = ptr->sec_rc;
*p_convid = ptr -> conv_id;
free(ptr);
return(0);
}